package GUI;

import 实体.消费记录;
import 操作.消费记录_操作;

import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.List;

public class 消费记录界面 {
    private JFrame frame;
    private JPanel main;
    private JButton 售卡Button;
    private JButton 系统管理Button;
    private JButton 会员信息Button;
    private JButton 消费记录Button;
    private JTextField textField1;
    private JButton 按照卡号查询Button;
    private JButton 查询全部消费记录Button;

    private JTable 消费记录表;
    private DefaultTableModel 消费记录_tableModel;
    private Object[][] cellData;
    private String[] 消费记录_columnNames={"卡号","姓名","消费时间","消费金额","存款金额","结存余额"};

    public 消费记录界面() {
        消费记录_操作 消费记录操作=new 消费记录_操作();
        会员信息Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                new 会员信息查询().界面();
                frame.dispose();
            }
        });
        系统管理Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                new 系统管理界面().界面();
                frame.dispose();
            }
        });
        查询全部消费记录Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                消费记录_tableModel.setRowCount( 0 );

                    try {
                        List<消费记录> list_消费 = 消费记录操作.查询all();
                        for(消费记录 l : list_消费)
                        {
                            String[] tableValues = {l.get卡号(),l.get姓名(),l.get消费时间(),l.get消费金额(),l.get存款金额(),l.get结存余额()};
                            消费记录_tableModel.addRow(tableValues);
                        }
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }

            }
        });
        按照卡号查询Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                消费记录_tableModel.setRowCount( 0 );

                try {
                    List<消费记录> list_消费 = 消费记录操作.搜索(textField1.getText());
                    for(消费记录 l : list_消费)
                    {
                        String[] tableValues = {l.get卡号(),l.get姓名(),l.get消费时间(),l.get消费金额(),l.get存款金额(),l.get结存余额()};
                        消费记录_tableModel.addRow(tableValues);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }

            }
        });
    }
    public static void main(String[] args) {
        界面();
    }
    public static void 界面(){
        消费记录界面 消费=new 消费记录界面();
        消费.frame=new JFrame("游泳管理系统");
        消费.frame.setContentPane(消费.main);
        消费.frame.setSize(500,400);
        消费.frame.setLocation(500, 200);
        消费.frame.setVisible(true);
        消费.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    private void createUIComponents() {
        // TODO: place custom component creation code here
        String[][] tableValues = null;
        消费记录_tableModel = new DefaultTableModel(tableValues,消费记录_columnNames);
        消费记录表 = new JTable(消费记录_tableModel);
        消费记录表.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//设置单选模式
        DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();//单元格渲染器
        tcr.setHorizontalAlignment(JLabel.CENTER);//居中显示
        消费记录表.setDefaultRenderer(Object.class, tcr);//设置渲染器
        JTableHeader tableHeader = 消费记录表.getTableHeader();//获取表头
        tableHeader.setPreferredSize(new Dimension(tableHeader.getWidth(), 20));// 设置表头大小
        tableHeader.setFont(new Font("楷体", Font.BOLD, 15));//设置表头文字属性
        tableHeader.setReorderingAllowed(false);// 设置表格列不可重排
        消费记录表.setRowHeight(18);//设置行高
        消费记录表.setFont(new Font("楷体", 0, 10));//设置单元格文字属性
    }
}
